<?php
namespace app\index\controller;   // 必须继承于app 后面是具体的应用名 例 t5/note/index 
use app\index\common\controller\Nav as commonNav;  // app可以看成就是note 调用公共模块
use think\Controller;
use think\Request;
use app\tp\model\Listt; //必须继承于app 第二个是具体的应用名  例 t5/note/tp 第三个首字母大写 
use PHPExcel\Classes\PHPExcel;
use think\Db;
class Index extends Controller
{
	public $cyyy = array(
		'0'=>array(
			'name'=>"仿京东登陆",
			'address'=>"地址1<br/>地址2 ",
			'link'=>"link1<br/>link2",
		),
		'1'=>array(
			'name'=>"仿京东注册",
			'address'=>"地址3<br/>地址4",
			'link'=>"link8<br/>link3",

		)
		);




    public function index()
    {
		
		$id = input('get.id',9,'intval'); // 通过点击选项过来的
		$content = input('get.content','thinkphp');
		
		
	   //  return '这是note/index  http://www.2018a.com/47.94.136.51/t5/public/note.php/index/Index/index';
        
		
		$common = new commonNav();  // 调用公共模块
	    $data6 =  $common->index();
		$data = $common->index2();
		$this->assign('data',$data);  //获得0级菜单
		$this->assign('data6',$data6); //获得具体数据
		$this->assign('name',$content);

		$thinkphp_caidan = $this->get_thinkphp_caidan($id);  // 获得thinkphp 的分类菜单
		$this->assign('thinkphp_caidan',$thinkphp_caidan); 
		// dump($id);
        //获得thinkphp 菜单下的具体内容
        $erji_neirong = $this->get_erji_neirong($id);

		$this->assign('erji_neirong',$erji_neirong); 
		//获得搜索框中 选择项的内容
		$item = $this->get_item($data);
		// dump($item);
		$this->assign('item',$item);
		//echo $cates;
		 return $this->fetch();
		
		
		
	}
	
	
	public function index2(){
		$name = input('post.name'); // 通过点击选项过来的
	    $superior = input('post.superior');
		// dump($superior);
		//关键词先是和 后是或
        //查出一级菜单的id号

		$model = new Listt;
		$where3['superior'] = $superior;
		
		
		// $where['content'] = ['like','%'.$name.'%'];
		
		// $where2['keyword'] = ['like','%'.$name.'%'];
		$order = null;
		$item = null;
		$limit = false;
         $data3 = $model->select2($where3,$order,$limit,$item);
		// dump($data3);
		 for($i=0;$i<count($data3);$i++){
		 $id[] = $data3[$i]['id'];

		 }
        // dump($id);
		$where = [
			'content' => ['like','%'.$name.'%'],
			'superior'=> ['in',$id],
		];
		if($superior == 0){ unset($where['superior']);}
		$where2 = [
			'keyword' => ['like','%'.$name.'%'],
			'superior'=>['in',$id],
		];
		if($superior == 0){unset($where2['superior']);}

		$data = $model->select2($where,$order,$limit,$item);
		$data2 = $model->select2($where2,$order,$limit,$item);
		dump($model->getLastSql());
		
		$data5 = array_merge($data, $data2); // 合并两个数组
	//	dump($data5);
		$this->assign('data5',$data5); 
		//echo $cates;
	    return $this->fetch();

	}


	public function get_thinkphp_caidan($id){
		
	//	dump($id);
		$model = new Listt;
      $where['superior'] = $id;
	  $order = null;
	  $item = null;
	  $limit = false;
	  $data = $model->select2($where,$order,$limit,$item); //获得0级菜单
	  return $data;
	}

	public function get_erji_neirong($id){
		$data5 = array(); //页面遍历时使用的数组
			$data4 = array();
			$data6 = array();
			$model = new Listt();
			
			$data = $this->get_thinkphp_caidan($id);
			
			$order = "content desc";
			$item = null;
			$limit = false;
	
	
			//获得一个新的数组 由 idname 和新的遍历内容组成 但是id 是衔接
			for($i=0; $i<count($data); $i++){
			$where2['superior'] = $data[$i]['id'];
			$data2 = $model->select2($where2,$order,$limit,$item); // 按上级菜单，遍历
			// 1.2 下面 如果data2 有值，重新改结构，相同 上级菜单 合并成一个数组包括 data 和idname
			if($data2){
				//1.1下面 遍历 相同 上级菜单 合并成一个数组
				for($n=0; $n<count($data2); $n++){
			$data3 =array(
						  'id'=> $data2[$n]['id'],
						  'content'=> $data2[$n]['content'],
						  'address'=> $data2[$n]['address'],
						  'url'=> $data2[$n]['url'],
			);
			 array_push($data4,$data3);
			}
				//1.1上面 遍历	相同 上级菜单 合并成一个数组
				$data4 = array('data'=>$data4);
				$idname = array('idname'=>$data[$i]['idname']);  //把一个字符串 转 键值对 数组
				$data5 = array_merge($data4, $idname); // 合并两个数组
				$data3 =  array();  // 重置数组为空
				$data4 =  array();  // 重置数组为空
			//	dump($data5);
				
					}
				// 1.2 上面 如果data2 有值，重新改结构，相同 上级菜单 合并成一个数组包括 data 和idname
				if($data5){
				array_push($data6,$data5);}
				$data5 =  array();  // 重置数组为空
		
		
				}
			//	dump($data6);
			 return $data6;
		}
	
		/**
		 * 给单选框 大分类名称 填充的数组 由大分类名称 和下属的一级菜单的id的合集 组成
		 * $content 0级菜单的名称 如 mysql php
		 */
    public function get_item($data){
	 //获得大项名称
	// dump($data);
	 for($i=0; $i<count($data); $i++ ){
		//  dump($data[$i]['id']);
		$where['superior'] = $data[$i]['id'];
		$content = $data[$i]['content'];
		$item[] = [
            'item' => $content,
             'id'=> $where['superior'],
		];
		// dump($res);
		//echo Db::table('note_listt')->getlastsql();  // model 下获得最后一条sql
		//把0级菜单和1级菜单 合成数组
	
		}
	 //上面 for 结束
	 return $item;
	}
		

/**
 * 学习次序
 */
	public function index3(){
   return $this->fetch();


	}
/**
 * 虚拟主机
 */
public function index4(){
	return $this->fetch();
 }


//生产二维码
public function index5(){
	return $this->fetch();
}


 public function index6(){
	
	Vendor('anli.phpqrcode');
	$mod = new \QRcode;
	$url = "http://www.hyhthjk.com.cn/stock.php/index/Zixuan/index";
   $value = $url;         //二维码内容
   $errorCorrectionLevel = 'H';  //容错级别
   $matrixPointSize = 5;      //生成图片大小
   ob_start();
   $mod->png($value,false , $errorCorrectionLevel, $matrixPointSize, 2);  
   // $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2); //这里就是把生成的图片流从缓冲区保存到内存对象上，使用base64_encode变成编码字符串，通过json返回给页面。
   $imageString = base64_encode(ob_get_contents()); //关闭缓冲区
   ob_end_clean(); //把生成的base64字符串返回给前端 
   $data = array( 'code'=>200, 'data'=>$imageString ); 
   return json($data);
 }

 
//富文本编辑器
public function index7(){
	return $this->fetch();
}


//收到富文本编辑器发来的信息
public function index8(){
	$id = input('get.id');
	$content = input('get.content'); // 通过点击选项过来的
	$where["id"] = $id;
	$up["address"] = $content;
    Db::table("note_test")->where($where)->update($up);
	return json($id);
	
}

//向富文本编辑器发信息
public function index9(){
	$where["id"] = 14;
    // echo"";
	$data = Db::table("note_test")->where($where)->field("address")->select();
	$data = $data["0"]["address"];
	// dump($data);
	return json($data);
	
}





/**
 * 下面是model区
 */

/***************************************************************model**************************************************************** */



}





